package Package.Hashset;

import java.util.HashSet;

public class Hashset {
    public static final void Hashset(){
//        HashSet集合的特点
//底层数据结构是哈希表
//对集合的迭代顺序不作任何保证，也就是说不保证存储和取出的元素顺序一致
//没有带索引的方法，所以不能使用普通for循环遍历
//由于是Set集合，所以是不包含重复元素的集合
        HashSet<String> hs=new HashSet();
        //添加元素
        hs.add("hello");
        hs.add("world");
        hs.add("java");
        hs.add("world");
        for (String s:hs
             ) {
            System.out.println(s);
        }
//        HashSet集合保证元素唯一性的原理
//1.根据对象的哈希值计算存储位置
//如果当前位置没有元素则直接存入
//如果当前位置有元素存在，则进入第二步
//2.当前元素的元素和已经存在的元素比较哈希值
//如果哈希值不同，则将当前元素进行存储
//如果哈希值相同，则进入第三步
//3.通过equals()方法比较两个元素的内容
//如果内容不相同，则将当前元素进行存储
//        如果内容相同，则不存储当前元
    }
}
